class valueMod extends Mod
{
  valueMod(Mod tempParent, float tempBx, float tempBy, int tempIndex) {
    super(tempParent, tempBx, tempBy, tempIndex);
    img="";
    name="";
    minWx=20;
    minWy=20;
    oPs[op]=new outPort(this, 0, "");
    updatePorts();
    isValue=true;
    isInput=true;
    alignRight=true;
  }
  void update(int tempI) {
    if (oPs[0].type==1) {
      sendString(name, 0);
    }
    else {
      sendFloat(float(name), 0);
    }
  }
}

class inspectMod extends Mod
{
  inspectMod(Mod tempParent, float tempBx, float tempBy, int tempIndex) {
    super(tempParent, tempBx, tempBy, tempIndex);
    img="";
    name="";
    minWx=20;
    minWy=20;
    iPs[ip]=new inPort(this, 0, "");
    updatePorts();
    isValue=true;
  }

  void go() {
    update(0);
  }
  void update(int tempI) {
    if (iPs[0].getType()!=1 && iPs[0].stringV!="nan") {
      iPs[0].stringV=null;
    }
    if (iPs[0].stringV!=null) {
      wx=20+iPs[0].stringV.length()*6;
      name=iPs[0].stringV;
    }
    else {
      //wx=40;
      if (floor(iPs[0].floatV)==iPs[0].floatV) {
        name=nf(iPs[0].floatV, 0, 0);
      }
      else {
        name=nf(iPs[0].floatV, 0, 2);
      }
    }
    wx=20+name.length()*6;
  }
}

class messageMod extends Mod
{
  messageMod(Mod tempParent, float tempBx, float tempBy, int tempIndex) {
    super(tempParent, tempBx, tempBy, tempIndex);
    img="";
    name="";
    minWx=20;
    minWy=20;
    iPs[ip]=new inPort(this, 0, "");
    oPs[op]=new outPort(this, 0, "");
    updatePorts();
    isValue=true;
    isInput=true;
  }
  void go() {

    if (oPs[0].type==1) {
      sendString(name, 0);
    }
    if (oPs[0].type==2) {
      sendFloat(iPs[0].floatV, 0);
    }
  }
}

class valueTrigMod extends Mod
{
  valueTrigMod(Mod tempParent, float tempBx, float tempBy, int tempIndex) {
    super(tempParent, tempBx, tempBy, tempIndex);
    img="value";
    loadImg(img);
    name="";
    minWx=24;
    minWy=20;
    iPs[ip]=new inPort(this, 0, "value");
    iPs[ip]=new inPort(this, 0, "trig");
    oPs[op]=new outPort(this, 0, "");
    updatePorts();
    isValue=true;
    isInput=true;
  }
  void go() {

    if (iPs[0].type==1) {
      sendString(iPs[0].stringV, 0);
    }
    if (iPs[0].type==2) {
      sendFloat(iPs[0].floatV, 0);
    }
  }
  void callOnEdit() {
    if (!iPs[0].isUsed && oPs[0].ws==0) {
      oPs[0].type=0;
      iPs[0].type=0;
    }
    else if (oPs[0].ws==0) {
      oPs[0].type=iPs[0].type;
    }
    else {
      iPs[0].type=oPs[0].type;
    }
  }
}

